import axios from 'axios'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import qs from 'qs';

import { getToken } from '@/utils/storage'

const env = process.env.NODE_ENV
const BaseUrl = env === 'development' ? 'http://admin.njdczy.com' : 'http://127.0.0.1:8000';

// 创建axios实例
const service = axios.create({
  // baseURL: BaseUrl, // api的base_url 省略前缀的写法
  timeout: 55000,  // 请求超时时间
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
  },
  transformRequest: [
    function(data) {
       data = qs.stringify(data)
       return data
    }
  ]
})

const writeList = ['/api/index/wachatLogin']

// request拦截器
service.interceptors.request.use(config => {
  NProgress.start();
  if (config.url !== '/api/index/wachatLogin') {
    config.headers.token = getToken() // GptWll0ZYXtM // GptWll0ZYXtM
  }
  // config.headers.Authorization = getToken() || '123456'
  console.log('request----->config:', config)
  return config
}, error => {
  // Do something with request error
  console.log(error) // for debug
  Promise.reject(error)
})

// respone拦截器
service.interceptors.response.use(
  response => {
    NProgress.done();
    console.log('后台返回数据', response)
    if (response.status === 200) {
      return response.data
    } else {
      // console.log(response)
      return Promise.reject('后台返回数据格式有误')
    }
  },
  error => {
    // 处理错误状态码
    console.log('err' + error)// for debug
    // Message({
    //   message: error.message,
    //   type: 'error',
    //   duration: 3 * 1000
    // })
    return Promise.reject(error)
  }
)

export default service;

// handleError()
// function handleError(code) {
//   if (res.code !== 200) {
//     Message({
//       message: res.message,
//       type: 'error',
//       duration: 3 * 1000
//     })

//     // 401:未登录;
//     if (res.code === 401) {
//       MessageBox.confirm('你已被登出，可以取消继续留在该页面，或者重新登录', '确定登出', {
//         confirmButtonText: '重新登录',
//         cancelButtonText: '取消',
//         type: 'warning'
//       }).then(() => {
//         store.dispatch('FedLogOut').then(() => {
//           location.reload()// 为了重新实例化vue-router对象 避免bug
//         })
//       })
//     }
//     // return Promise.reject('error')
//   } else {

//   }
// }
